#ifndef CALCULATOR_H
#define CALCULATOR_H

#include <functional>

#include "napi/native_api.h"

class Calculator {
//private:
//    int32_t base_;

public:
    static napi_value Construct(napi_env env, napi_callback_info info);
    static napi_value Max(napi_env env, napi_callback_info info);
    static napi_value Multiply(napi_env env, napi_callback_info info);
    static napi_value Add(napi_env env, napi_callback_info info);
    // 同步实例方法
    static int32_t MyAdd(int32_t num, int32_t num2);
    static int32_t MyMultiply(int32_t num, int32_t num2);
    
    // 异步实例方法
//    void asyncAdd(int32_t num, std::function<void(int32_t)> callback);
    
    // 静态方法
    static int32_t MyMax(int32_t a, int32_t b);
};

#endif  // CALCULATOR_H
